#!/bin/bash

# 任务文件
TASK_FILE="tasks.txt"

# 检查任务文件是否存在，不存在则创建
if [ ! -f $TASK_FILE ]; then
    touch $TASK_FILE
fi

# 显示菜单
display_menu() {
    echo "=========================="
    echo "    任务管理系统         "
    echo "=========================="
    echo "1. 添加任务"
    echo "2. 查看任务"
    echo "3. 标记任务为完成"
    echo "4. 删除任务"
    echo "5. 退出"
    echo "=========================="
    echo "请选择一个选项: "
}

# 添加任务
add_task() {
    echo "输入任务描述: "
    read task_description
    echo "未完成: $task_description" >> $TASK_FILE
    echo "任务已添加!"
}

# 查看任务
view_tasks() {
    echo "任务列表:"
    if [ ! -s $TASK_FILE ]; then
        echo "暂无任务."
    else
        while IFS= read -r line
        do
            echo $line
        done < $TASK_FILE
    fi
}

# 标记任务为完成
mark_task_complete() {
    echo "输入要标记为完成的任务编号: "
    read task_number
    if [ ! -s $TASK_FILE ]; then
        echo "暂无任务可标记."
    else
        sed -i "${task_number}s/^未完成/完成/" $TASK_FILE
        echo "任务已标记为完成!"
    fi
}

# 删除任务
delete_task() {
    echo "输入要删除的任务编号: "
    read task_number
    if [ ! -s $TASK_FILE ]; then
        echo "暂无任务可删除."
    else
        sed -i "${task_number}d" $TASK_FILE
        echo "任务已删除!"
    fi
}

# 主循环
while true; do
    display_menu
    read choice
    case $choice in
        1)
            add_task
            ;;
        2)
            view_tasks
            ;;
        3)
            mark_task_complete
            ;;
        4)
            delete_task
            ;;
        5)
            echo "退出系统"
            exit 0
            ;;
        *)
            echo "无效选项，请重新选择"
            ;;
    esac
done

